# Maintainer: Jiachen YANG <farseerfc at archlinux dot org>
# Maintainer: Sven-Hendrik Haase <svenstaro@archlinux.org>

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - disable neon on v7 with -DTG_OWT_ARCH_ARMV7_USE_NEON=OFF

pkgname=libtg_owt
# It seems the currently desired version can be gotten from
# https://github.com/telegramdesktop/tdesktop/blob/dev/Telegram/build/docker/centos_env/Dockerfile
_commit=e9d103e2480e0983bf464debc371b049cdd83648
pkgver=0.git27.${_commit:0:7}
pkgrel=2
pkgdesc='WebRTC library'
arch=('x86_64')
url='https://github.com/desktop-app/tg_owt'
license=('BSD')
# libdrm is dynamically loaded via dlopen
depends=('libdrm' 'libxdamage')
makedepends=('git' 'ninja' 'unzip' 'cmake' 'protobuf' 'libxrandr' 'libxcomposite' 'openssl' 'glibc'
             'ffmpeg' 'libva' 'opus' 'yasm' 'libjpeg-turbo' 'pipewire' 'libxtst' 'libepoxy' 'openh264')
options=('staticlibs')
source=("git+${url}.git#commit=${_commit}"
        "git+https://chromium.googlesource.com/libyuv/libyuv/"
        "git+https://github.com/google/crc32c"
        "git+https://github.com/abseil/abseil-cpp"
        "git+https://github.com/cisco/libsrtp"
        libtg_owt_ffmpeg7.patch::https://patch-diff.githubusercontent.com/raw/desktop-app/tg_owt/pull/128.patch)
b2sums=('494ac912fcf7214b47c92e8e049b131e37629e86faed2020078e7b4a8281408c16cf990f98476d3639d5f63e2230417867b74cadc6171c7c82633914c2f6a3c3'
        'SKIP'
        'SKIP'
        'SKIP'
        'SKIP'
        '2f86d30632e200e9082727eb19ccb33f44f1a57b33b007f5d64e222af1ec95bd85cae5297d3011c692dfe4bf7251d03f7f7d8edd3c7e0dac44cfee2fe50c7e11')

prepare() {
  cd tg_owt
  git submodule init
  git submodule set-url src/third_party/libyuv "$srcdir"/libyuv
  git submodule set-url src/third_party/crc32c/src "$srcdir"/crc32c
  git submodule set-url src/third_party/abseil-cpp "$srcdir"/abseil-cpp
  git submodule set-url src/third_party/libsrtp "$srcdir"/libsrtp
  git -c protocol.file.allow=always submodule update

  patch -Np1 -i "$srcdir"/libtg_owt_ffmpeg7.patch
}

build() {
  cd tg_owt

  export CFLAGS+=" -ffat-lto-objects"
  export CXXFLAGS+=" -ffat-lto-objects -I/usr/include/libdrm"
  # Upstream stated that only static builds are really supported so that's what we'll do.
  # https://github.com/desktop-app/tg_owt/issues/75#issuecomment-992061171
  cmake \
    -B build \
    -G Ninja \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DBUILD_SHARED_LIBS=OFF \
    -DTG_OWT_ARCH_ARMV7_USE_NEON=OFF
  ninja -C build
}

package() {
  cd tg_owt
  DESTDIR="${pkgdir}/" ninja -C build install
  install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
